iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 6
0

這次要來介紹的是按鈕(Button)。按鈕在app上是非常普遍的開發元件,可以提供觸發後執行一連串開發者所設計的流程。

按鈕觸發執行必須要有監聽器,監聽使用者是否有作觸發動作以便做下一步動作。下方要實作UI設計與Java程式設計。

UI設計

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    
    <!--Button-->
    <!--android:id 元件id-->
    <!--android:text 顯示文字-->
    <!--android:textSize 字符大小-->
    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="按鈕"
        android:textSize="20dp" />
</RelativeLayout>

Java程式設計

接下來要實作按鈕被觸發後的功能,而這個動作必須要有監聽器及觸發內容。下面三種實作方法可以達成目的:

方法一:
需要建立Button.OnClickListener的監聽物件

public class MainActivity extends AppCompatActivity {
    Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);        
        <!--透過id綁定元件-->
        button = findViewById(R.id.button);
        //指定監聽的物件
        button.setOnClickListener(listener);
    }    
    //監聽器
    Button.OnClickListener listener= new Button.OnClickListener() {
        //實現按鈕觸發後行為
        @Override
        public void onClick(View v) {
            //設定Button顯示文字
            button.setText("按鈕被點擊");
        }
    };
}

方法二:

以類別建立偵聽器

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);        
        <!--透過id綁定元件-->
        Button button = findViewById(R.id.button);
        //指定監聽的物件
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //設定Button顯示文字
                button.setText("按鈕被點擊");
            }
        });
    }
}

方法三:

先到XML檔找到Button並加入android:onClick

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="按鈕"
        android:textSize="20dp"
        android:onClick="listener" />

接著到Java程式碼,建立觸發方法

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);        
        <!--透過id綁定元件-->
        Button button = findViewById(R.id.button);
    }
    
    public void listener(View view) {
        //設定Button顯示文字
        button.setText("按鈕被點擊");
    }
}

上一篇
[Day05] Text元件
下一篇
[Day07] Toast訊息顯示
系列文
Android 從零開始30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言